#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "suivie_personnel.h"




/* cette fonction permet de savoir l'existance d'un élément dans le tableau */
int exist(parcours *t, int id, int i) 
{ 
  int j=0; 
  int test=-1;  
  while((test==-1)&&(j<i))
  {
     if (t[j].id==id)
       test=j;
     else 
       j++;
  }
  return test;
}




int suivre_capteurs (char* ch, parcours *t)
{
  int i=0;
  int n=0;
  int id;
  int pos;
  char capt[5],tmp[50];  
  FILE *f;
  f=fopen("evenements.log","r"); 
  if(f!=NULL)
  {	
    while (fscanf(f,"%s %d %s",tmp,&id,capt)!= EOF)
    { 
       pos=exist(t,id,i);
       if (pos==-1)
       {
          t[i].id=id; 
          strcpy(t[i].chemin,capt);  
          i++;
          n++;
       }
       else
       {
          strcat(t[pos].chemin,capt);
       }
    }
  }
  else 
    printf("le fichier n'existe pas");
  for (i=0;i<n;i++)
  {
    printf("\t%d \t || \t %s \n",t[i].id,t[i].chemin);
  } 
  fclose(f);
  return n;
}




void verif_chemin (char chem[50] , parcours t )
{                    
  int j,i,k;
  int l;                
  FILE *h;
  h=fopen("alerte.txt","a");
  char temp_chem[8][4];                                
  char temp_chp[20][4];
  
  

  /* 
  for(l=0;l<8;l++)
    temp_chem[l]="";
  */
  i=0;
  for (l=0;l<strlen(chem);l+=3)
  {
        temp_chem[i][0]=chem[l];
        temp_chem[i][1]=chem[l+1];
        temp_chem[i][2]=chem[l+2];
 	temp_chem[i][3]='\0';
	i++;  
  }
 
  

  /*                                                                      
  for(l=0;l<(j/3);l++)
    temp_chp[l]="";
  */
 j=0;
  for (l=0;l<strlen(t.chemin);l+=3) 
  {
        temp_chp[j][0]=t.chemin[l];
        temp_chp[j][1]=t.chemin[l+1];
        temp_chp[j][2]=t.chemin[l+2];
	temp_chp[j][3]='\0';
        j++;
  }  
  for(k=0;k<j;k++)
  {
    if(strcmp(temp_chp[k],temp_chem[k])!=0)                
    
      fprintf(h,"Cet id %d manque %s a la position %d \n",t.id,temp_chem[k],k+1);
      
  }
/* 
  l=0;                          
  while (l<(strlen(chem)-9) && (chem[l]==t[i].chemin[l]))     
    l++;  
  j=l+1;
  while (chem[j]!='\0')
    {
        ch1[l]=chem[j];
        l++;
        j++;
    }
    ch1='\0';     
  fprintf(h,"le chemin de cet id %d manque %s a la position %d \n",t[i].id,ch1,l); */  
  fclose(h);
}




void alarm ( int n , parcours* t )
{
  int i,idd;
  char te[10],cap[5];
  char chem[]="E01C01S01L01L02C02V01I01";
  FILE *h;
  h=fopen("alerte.txt","w"); 
  FILE *f;
  f=fopen("evenements.log","r"); 
  while (fscanf(f,"%s %d %s",te,&idd,cap)!= EOF)
  {
     if(strcmp(cap,"ebola")==0)
     fprintf(h,"cet id %d est affecte par l'ebola ",t[i].id);  
  } 
  if (h!=NULL)
  {
    for (i=0;i<n;i++)
    {
      if ( strcmp(chem,t[i].chemin)==0)
         fprintf(h," le chemin est correct pour cet ID %d \n",t[i].id);
      else                                                                          
        verif_chemin(chem ,t[i]);                      
    }      
  }
  else 
    printf("le fichier n'existe pas ");
  fclose(h);
}
